- Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathSolution.rs
24 lines (21 loc) · 766 Bytes
/
Solution.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
implSolution{
pubfnminimum_average_difference(nums:Vec<i32>) -> i32{
let n = nums.len()asi64;
letmut prefix_sum = 0;
letmut suffix_sum = nums.iter().map(|&x| x asi64).sum::<i64>();
letmut min_avg_diff = i64::MAX;
letmut ret = 0;
for i in0..nums.len(){
prefix_sum += nums[i]asi64;
suffix_sum -= nums[i]asi64;
let prefix_avg = prefix_sum / (i asi64 + 1);
let suffix_avg = suffix_sum.checked_div(n - i asi64 - 1).unwrap_or(0);
let avg_diff = (prefix_avg - suffix_avg).abs();
if avg_diff < min_avg_diff {
min_avg_diff = avg_diff;
ret = i;
}
}
ret asi32
}
}